package org.wu.acw.server.domain.model.model.acw.schema;

import org.wu.framework.lazy.orm.core.config.enums.LazyDataSourceType;
import org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyDomainRepository;
import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.wu.framework.web.response.Result;

import java.util.List;

/**
 * describe ACW 数据库库信息
 *
 * @author Jia wei Wu
 * @date 2023/09/29 12:30 下午
 * @see DefaultDDDLazyDomainRepository
 **/

public interface AcwSchemaRepository {


    /**
     * 是否支持当前数据源类型
     * @param lazyDataSourceType 数据源类型
     * @return 是否支持
     */
    boolean support(LazyDataSourceType lazyDataSourceType);


    /**
     * describe 查询多个ACW 数据库库信息
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/09/29 12:30 下午
     **/

    Result<List<AcwSchema>> findListWithSize(AcwSchema acwSchema);

    /**
     * describe 分页查询多个ACW 数据库库信息
     *
     * @param
     * @return
     * @exception/throws
     * @author Jia wei Wu
     * @date 2023/09/29 12:30 下午
     **/

    Result<LazyPage<AcwSchema>> findPage(int size, int current, AcwSchema acwSchema);


    Result<List<AcwSchema>> findList(AcwSchema acwSchema);
}